<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="author" content="wangbo">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数据转化</title>
</head>

<body>
  <script>

    // 科学计数法
    let billion = 1e9;  // 10 亿，字面意思：数字 1 后面跟 9 个 0
    // 其他进制的写法
    let a = 0b11111111; // 二进制形式的 255
    let b = 0o377; // 八进制形式的 255
    console.log(0xff); // 255
    console.log(a == b); // true，两边是相同的数字，都是 255
    // 10进制转其他进制
    // 方法 number.toString(base) 返回在给定 base 进制数字系统中 num 的字符串表示形式。
    let num = 255;
    alert(num.toString(16));  // ff
    alert(num.toString(2));   // 11111111
    // Number() 将其他的数据类型强制转成数字
    // 只有纯数字字符组成的字符串才能转成数字，其他都为 NaN
    console.log(Number("100"));      // 100
    console.log(Number("100a"));     // NaN

    // 二进制转十进制
    let str1 = "110100";
    console.log(parseInt(str1, 2));     //52
    // 八进制转十进制
    let str2 = "64";
    console.log(parseInt(str2, 8));
    // 十六进制转十进制
    let str3 = "34";
    console.log(parseInt(str3, 16));

    
    console.log(parseInt("100a"));      // 100
    console.log(parseInt(3.15));        // 3
    console.log(parseInt("c1000"));     // NaN
    console.log(parseInt("100a333"));   // 100
    // NaN 代表一个 error，它是独一无二的，它不等于任何东西，包括它自身。
    //保留2位小数
    console.log(Number.parseFloat(123.456).toFixed(2));     // "123.46" 
    console.log(Number.parseFloat(0.004).toFixed(2));     // "0.00"
    console.log(Number.parseFloat(123.456).toFixed(2));     // "123.46" 
  </script>
</body>

</html>